import os
from selenium import webdriver
import time
from selenium.webdriver.support.select import Select

# 生成一段纯数字的时间戳，以字符串的形式保存在变量中，被标题、排序、搜索关键字引用
my_time = str(time.strftime('%Y')) + str(time.strftime('%m')) + str(time.strftime('%d')) + str(time.strftime('%H')) + str(time.strftime('%M')) + str(time.strftime('%S'))
print(my_time)
# 商家登录页面url
url_dl_sj = 'http://172.16.0.205/shop/index.php?controller=systemseller&action=index'
my_title = '%s，二手老干妈辣酱，质量很好，没舍得全部吃完，还有大半瓶。' % my_time


driver = webdriver.Chrome()
driver.get(url_dl_sj)
driver.implicitly_wait(6)

# 卖家登录：
driver.find_element_by_name('username').send_keys('ceshi2000')
driver.find_element_by_name('password').send_keys('ceshi2000')
driver.find_element_by_id('login').click()
time.sleep(3)
driver.find_element_by_link_text('商品模块').click()
driver.find_element_by_link_text('添加普通商品').click()
#正常发布一个商品
# 商品名称输入框
driver.find_element_by_name('name').send_keys(my_title)
# 关键词输入框
driver.find_element_by_name('search_words').send_keys('辣椒酱')
# 点击设置分类按钮
driver.find_element_by_name('_goodsCategoryButton').click()
# 定位iframe标签
tt = driver.find_element_by_css_selector('body > div.aui_state_focus > div > table > tbody > tr:nth-child(2) > td.aui_c > div > table > tbody > tr:nth-child(2) > td.aui_main > div > iframe')
driver.switch_to.frame(tt)
# 点击食品饮料 顶级分类
driver.find_element_by_xpath('//span[text()="食品饮料"]').click()
# 点击进口食品 二级分类
driver.find_element_by_xpath('//span[text()="进口食品"]').click()
# 跳出iframe标签
driver.switch_to.default_content()
# 点击确定按钮
driver.find_element_by_xpath('//button[text()="确定"]').click()
# 商品排序输入框
driver.find_element_by_name('sort').clear()
driver.find_element_by_name('sort').send_keys(my_time)
# 计件单位显示框
driver.find_element_by_name('unit').clear()
driver.find_element_by_name('unit').send_keys('瓶')
# 是否免运费单选框，选择是
driver.find_element_by_css_selector('#tab1 > div:nth-child(7) > div > div:nth-child(1) > label').click()
# 基本数据 - 市场价格输入框
driver.find_element_by_name('_market_price[0]').send_keys('12')
# 基本数据 - 销售价格输入框
driver.find_element_by_name('_sell_price[0]').send_keys('8')
# 基本数据 - 成本价格输入框
driver.find_element_by_name('_cost_price[0]').send_keys('12')
# 商品品牌 下拉选择框，通过value值选择adidas
aa = driver.find_element_by_name('brand_id')
Select(aa).select_by_value('2')
# 产品相册 选择文件按钮
driver.find_element_by_id('fileUpload').send_keys('%s\\laoganma_second_hand.jpg' % os.getcwd())
# driver.switch_to.default_content()
time.sleep(3)
# 点击确定按钮，确认发布
driver.find_element_by_css_selector('div>input[value="确 定"]').click()
time.sleep(2)
driver.get_screenshot_as_file(my_time + '人工核对刚添加的商品状态，应为：等审.png')
time.sleep(2)


# 打开一个新窗口，后台审核通过，切换到卖家窗口，刷新，确认已审核通过，已上架。
# 新建一个窗口，打开后台管理首页
js = 'window.open("http://172.16.0.205/shop/index.php?controller=admin&action=index")'
driver.execute_script(js)
# 切换窗口 至 后台窗口
all_windows = driver.window_handles
driver.switch_to.window(all_windows[1])
# 输入账号、密码
driver.find_element_by_name('admin_name').send_keys('admin')
driver.find_element_by_name('password').send_keys('123456')
driver.find_element_by_name('captcha').send_keys('sssss')
driver.find_element_by_xpath('//strong[text()="登 录"]').click()
# 点击顶部商品 模块按钮，将直接进入商品列表页面
time.sleep(3)
driver.find_element_by_link_text('商品').click()
# 使用driver.find_elements，将会以列表的形式保存在列表中，商品列表页面上的 状态 下拉选择框，标签名都是select
my_list = driver.find_elements_by_tag_name('select')
# for循环遍历my_list中保存的元素，将状态都设置成上架
for i in my_list:
    Select(i).select_by_value('up')
driver.refresh()
# 切换窗口 至 商家窗口 - 商品列表
all_windows = driver.window_handles
driver.switch_to.window(all_windows[0])
# 商家窗口 点击查看商品列表
driver.find_element_by_link_text('商品列表').click()
time.sleep(2)
driver.get_screenshot_as_file(my_time + '人工核对刚添加的商品状态，应为：上架.png')
time.sleep(2)


# 新建一个窗口，搜索该商品，
js = 'window.open("http://172.16.0.205/shop/")'
driver.execute_script(js)
# 切换窗口 至 首页窗口
all_windows = driver.window_handles
driver.switch_to.window(all_windows[2])
driver.find_element_by_name('word').send_keys(my_time)
driver.find_element_by_css_selector('[value="商品搜索"]').click()
time.sleep(2)
driver.get_screenshot_as_file(my_time + '人工核对：应该可以搜索到该文件名时间戳的商品.png')
time.sleep(2)
driver.quit()